Регистрация...

Eserv Forum / E3 / Eproxy 3 Support / Настройка Eproxy и TCPMAP на нескольких LAN интерфейсах

imported // (v1)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
Новости
12.10.2009
Переезд завершен
Есть несколько LAN. Можно ли настроить на разных LAN интерфейсах TCPMAP на один порт? Например: LAN1 25 smtp1.ru и LAN2 25 smtp2.ru? Тоже и с Eproxy. Как научить отвечать по LAN2, LAN3 и игнорировать LAN1? Спасибо.
 
Комментарии к этой версии (28.06.2006 14:25) [~Terkoest] 024b970d
АвторДатаТекстtags
pig28.06.2006 15:01
Реализовано в PigProxy. Мануал в дистрибутиве.

Самостоятельно можно побиться с программированием правила Eproxy\conf\plugins\tcpmap\OnThreadConnect.rules.txt, которое получает на стеке имя хоста и номер порта и возвращает его же (то есть, можно подменить).
imported
rvm29.06.2006 12:21
Terkoest пишет: Можно ли настроить на разных LAN интерфейсах TCPMAP на один порт? Например: LAN1 25 smtp1.ru и LAN2 25 smtp2.ru?
В ListenPorts.rules.txt прописать слушаемые порты с указанием интерфейса (там список Listen до первой пустой строки):
25 LAN1
25 LAN2

А в OnConnect.rules.txt прописать отображение (tcpmap должен быть включен, ессно):

Port= 25 | IP= LAN1 | MAPTO: smtp1.ru 25
Port= 25 | IP= LAN2 | MAPTO: smtp2.ru 25

(LAN2 и LAN2 — IP-адреса).
Тоже и с Eproxy. Как научить отвечать по LAN2, LAN3 и игнорировать LAN1? Спасибо.
В ListenPorts.rules.txt прописать порт прокси с привязкой к интерфейсам:

3128 LAN2
3128 LAN3

А LAN1 — не упоминать и Eproxy там слушать не будет.
imported
Terkoest30.06.2006 19:10
Можно несколько уточнений ?
Как я понял слово " | " это такой "IF-THEN" и можно использовать вложенную конструкцию? Какой глубины?
Вместо: Port= 25 | IP= LAN1 | MAPTO: smtp1.ru 25 можно записать: Port= 25 IP= LAN1 AND | MAPTO: smtp1.ru 25 ?
Надо ли заканьчивать строку в примерах "\EOF"?
Каков порядок выполнения *.rules.txt?
В чем разница(смысл) между OnConnect и OnThreadConnect?

Спасибо за терпение к вопрошающим
imported
rvm30.06.2006 19:53
Да, черта | в конфиг-файлах Eserv это вариант IF-THEN ветвления, пропускающий остаток строки, если дан 0; иначе же остаток транслируется обычным порядком. Доступная вложенность определяется длиной строки (несколько килобайт).
Да, строки
Port= 25 | IP= LAN1 | MAPTO: smtp1.ru 25
Port= 25 IP= LAN1 AND | MAPTO: smtp1.ru 25 по результату идентичны.

\EOF — это "конец файла", типа return на уровне текущего файла. Для приведеных строк допустимо, но не обязательно. (бывает удобно для упрощения условных конструкций).

В чем разница(смысл) между OnConnect и OnThreadConnect?
Первое работает в контексте потока, принимающего соединения, а второе работает в контексте потока, обслуживающего TCP-сеанс и позволяет установить локальные для этого сеанса атрибуты. Выполняются в перечисленном порядке.

Еще одно замечание. Если вносите изменения в *.rules.txt, то помещайте измененные файлы в каталог myconf (рядом с conf, внутренняя иерархия идентична), — для того, чтобы при обновлении версии они сохранились (инсталятор обновляет каталог conf, а myconf не трогает).
imported
Работает на Eserv/5.05567 (10.02.2020)